package com.attendance.www.hr.service;

import java.util.List;

import com.attendance.www.hr.beans.AttendanceBean;
import com.attendance.www.hr.beans.EmployeeBean;
import com.attendance.www.hr.beans.SchedulWeekBean;
import com.attendance.www.hr.beans.SchedulWeekPageBean;

public interface ISchedulWeekService {
	
	/**
	 * 验证
	 * @param schedulWeekBean
	 * @return
	 */
	public boolean getSchedulWeekValidate(SchedulWeekBean schedulWeekBean);
	
	/**
	 * 删除验证是否存在
	 * @param id
	 * @return
	 */
	public boolean getDeleteSchedulWeekValidate(String id);

	/**
	 * 新增验证是否重复排班
	 * @param schedulWeekBean
	 * @return
	 */
	public boolean getVerifySchedulWeek(SchedulWeekBean schedulWeekBean);
	
	/**
	 * 新增
	 * @param schedulWeekBean
	 * @param type true 页面 false 导入
	 * @return
	 */
	public boolean saveSchedulWeek(SchedulWeekBean schedulWeekBean,boolean type);
	
	/**
	 * 生成(自动)班次天数据
	 * @param schedulWeekBean
	 * @return
	 */
	public boolean saveSchedulDayKeyAuto();
	
	/**
	 * 删除班次
	 * @param id
	 * @return
	 */
	public boolean deleteSchedulWeek(Integer swId);
	
	/**
	 * 修改班次
	 * @param schedulWeekBean
	 * @return
	 */
	public boolean updateSchedulWeek(SchedulWeekBean schedulWeekBean);
	
	/**
	 * 批量修改考勤时间
	 * @param schedulWeekBean
	 * @return
	 */
	public boolean batchPunchTime(SchedulWeekBean schedulWeekBean);
	
	/**
	 * 获取班次分页查询
	 * @param schedulWeekBean
	 * @param startNum
	 * @param pageCount
	 * @param employeeId
	 * @return
	 */
	public SchedulWeekPageBean getSchedulWeekList(SchedulWeekBean schedulWeekBean,Integer startNum, Integer pageCount,Integer employeeId);
	
	/**
	 * 查询班次by班次ID
	 * @param swId
	 * @return
	 */
	public SchedulWeekBean getSchedulWeekBySwId(Integer swId);
	
	/**
	 * 无规律班次导入
	 * @param attachmentId
	 * @param employeeId
	 * @return
	 */
	public List<String> schedulWeekImport(Integer attachmentId,Integer employeeId);
	
	/**
	 * 获取班次员工详情
	 * @param swId
	 * @return
	 */
	public List<EmployeeBean> getSchedulWeekEmployeeDetailedList(Integer swId);
	
	/**
	 * 根据ID获取班次内员工集合
	 * 
	 * @param request
	 * @return
	 */
	public List<SchedulWeekBean> getSchedulWeekEmployeeListBySwId(SchedulWeekBean schedulWeekBean);
	
	/**
	 * 员工明细导出
	 * @param schedulWeekBean
	 * @return
	 */
	public String exportSchedulWeek(SchedulWeekBean schedulWeekBean);
}
